#!/usr/bin/env python3
# coding: utf-8
"""
last edited at 2018-8-15
by Stone at BlueNet

机器人在运行中可能面临摄像头掉线或串口超时等故障，而这些故障并不总是那么明显，因此需要通过
一些灯效或者屏幕文字来提示技术人员相关的故障信息。

基本协议(protocol)：
在该模块实现相关故障对应的提示方式（灯光慢闪、快闪、屏幕文字），并封装在函数（或者用面向对
象的说法叫callable）内。一个故障对应两个函数，一个启动提示，一个关闭提示。其他模块中发生故
障时，调用本模块相关函数启动提示，当故障解除时，调用相关函数关闭提示。

栗子：
    # here is recognizer.py
    import hmi

    # ... some code ...
    # seems something error about camera is happening.
    hmi.camera_error_on()  # start prompt

    # ... some code trying to fix this error ...
    # error fixed.
    hmi.camera_error_off()
"""
import logging


def camera_error_on():
    print('camera error happened, on')


def camera_error_off():
    print('camera error fixed, off')
    import time
    time.sleep(3)


def serial_timeout_on():
    logging.info('serial timeout happened.')


def serial_timeout_off():
    logging.info('serial timeout solved.')


